home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / rcs.exe / CACHE.H < prev   
C/C++ Source or Header  |  1992-05-20  |  1KB  |  39 lines

  1. #ifndef _CACHE
  2. #define _CACHE
  3.  
  4. struct cache_block
  5. {
  6.   struct cache_block *next;
  7.   unsigned short sector;
  8.   unsigned char drive;
  9.   unsigned char status;
  10.   unsigned char data[1];
  11. };
  12.  
  13. struct cache
  14. {
  15.   unsigned short error_sector;
  16.   unsigned short error_drive;
  17.   unsigned short sector_size;
  18.   unsigned (*drive_access)(int, unsigned, unsigned, void *);
  19.   struct cache_block *first;
  20.   struct cache_block *last;
  21. };
  22.  
  23. #define CACHE_FLUSH (1<<0)
  24. #define CACHE_CLEAR (1<<1)
  25.  
  26. struct cache *cache_initialize(unsigned (*)(int, unsigned, unsigned, void *),
  27.   unsigned, unsigned);
  28. unsigned cache_access(struct cache *, int, unsigned, unsigned, void *);
  29. unsigned cache_flush_and_or_clear(struct cache *, int, int);
  30. void cache_free(struct cache *);
  31.  
  32. #define cache_flush(q,d) cache_flush_and_or_clear(q,d,CACHE_FLUSH)
  33. #define cache_clear(q,d) cache_flush_and_or_clear(q,d,CACHE_CLEAR)
  34. #define cache_flush_and_clear(q,d) \
  35.   cache_flush_and_or_clear(q,d,CACHE_FLUSH+CACHE_CLEAR)
  36.  
  37. #endif
  38.  
  39.